package com.arron.algorithm.leetcodetop100.链表;

import com.arron.algorithm.leetcodetop100.ListNode;

public class 两两交换链表中的节点 {


    public ListNode swapPairs(ListNode head) {

        if (head == null || head.next == null){
            return head;
        }

        ListNode p1 = head;
        for (int i =0 ;i<2;i++){

            p1= p1.next;

        }

        ListNode node = reverseNode(head, p1);
        head.next =  swapPairs(p1);

        return node;
    }

    public ListNode reverseNode(ListNode a,ListNode b){


        ListNode cur = a;
        ListNode pre = null;
        ListNode next= null;

        while (cur !=b){
            next =cur.next;
            cur.next = pre;
            pre = cur;
            cur= next;
        }


        return pre;
    }



}
